"""
题目 1：并行数据处理（30 分）
题目描述
编写一个程序，使用多线程并行处理多个数据文件。假设有 3 个数据文件（data1.txt, data2.txt, data3.txt），每个文件包含多行数字。程序需创建 3 个线程，每个线程负责读取一个文件并计算所有数字的平方和，最后汇总输出总结果。
评分标准
线程创建与启动（10 分）：正确创建 3 个线程处理不同文件
文件读取与数据处理（10 分）：正确计算每个文件的平方和
结果汇总（10 分）：安全地合并各线程的计算结果
"""
import threading

# 存储每个文件的计算结果
results = []
lock = threading.Lock()

def process_file(filename):
    total = 0
    with open(filename, 'r') as f:
        for line in f:
            total += int(line.strip()) ** 2
    with lock:
        results.append(total)

# 创建并启动线程
threads = []
for i in range(1, 4):
    filename = f'data{i}.txt'
    thread = threading.Thread(target=process_file, args=(filename,))
    threads.append(thread)
    thread.start()

# 等待所有线程完成
for thread in threads:
    thread.join()

# 汇总结果
print(f"总平方和: {sum(results)}")